<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>

<body>
    <script>
        let x = 1;
        function f1(x, y = x) {
            console.log(y); //2
        }
        function f2(y = x) {
            let x = 0;
            console.log(y); //1
        }
        f1(2);
        f2();
        // f1(2)先执行，由于传了一个参数，
        // 而函数f1(x,y=x)有两个形参，所以x为2，另外一个y走默认值，y默认值为x,此时y为2，最后f1(2)打印2，
        // 然后执行f2(),没有传参数，所以f2(y=x)走默认值，但是当前作用域没有x的值，所以在全局中找到了x=1,
        // 所以y为1，最后打印1
    </script>
</body>

</html>